Word processing applications have traditionally been stand-alone software programs installed on a personal computer that provide rich editing and formatting functionality for documents stored in local or network-based files. These applications are generally very large, requiring many megabytes of drive space to install. The recent trend, however, is for collaborative development of documents by remotely diverse users who may not have access to the same stand-alone word processing applications and where the documents may be stored on remote networks accessible over the Internet. This has led to the development of word processing programs that can be delivered via a conventional World Wide Web (“web”) browser, thereby allowing remote documents to be edited by users without the need to install a traditional stand-alone word processor.
One method of providing web-based word processing functionality involves developing web pages that utilize the editing features available in many web browser programs. This method has the advantage of being small and fast and requires very little development effort. However, the limited editing features provided by these web browsers generally cannot compare with the feature rich capabilities of traditional stand-alone word processors. Moreover, the editing features available may vary among the different web browser programs, thereby making it difficult to provide a consistent user experience across all web browsers.
Another method of providing web-based word processing functionality is to implement a complete word processing program that is executed within a browser using a cross-browser runtime technology such as JAVA from SUN MICROSYSTEMS, FLASH from ADOBE SYSTEMS, or Asynchronous JavaScript and XML (“AJAX”). While allowing the developer complete control over the features and capabilities of the program, this method generally involves a considerable development effort and requires implementation of low level editing functionality, such as the rendering of text in a window as typed by the user, the movement of a blinking cursor through the text, or the constant reflow of the contents of the window the user types. In addition, because the word processing program is executed in a browser-based runtime technology, it is often slow in execution and may not be able to provide an adequately responsive user interface.
It is with respect to these considerations and others that the disclosure made herein is presented.